/*=============================================================================
* File Name : CaluculateFPS.cpp                      Ver : 1.00  Date : 2011/08/13
*
* Description :
*
*       FPS計測クラス.
*
* Author : yuuki tsuchida.
*============================================================================*/
#include "CaluculateFPS.h"

/*===========================================================================*/
/**
 * コンストラクタ．
 */
CaluculateFPS::CaluculateFPS()
{
	m_frameCount = 0;
	m_fpsCaluculateTime = getMillTimeSecont();
}

/*===========================================================================*/
/**
 * 更新．
 */
void CaluculateFPS::update()
{
	m_frameCount += 1;

	if( ( getMillTimeSecont() - m_fpsCaluculateTime ) >= 1000 )
	{
		// FPSの更新
		m_FPS = m_frameCount;

		// カウンターリセット
		m_frameCount = 0;

		// 計測時間リセット
		m_fpsCaluculateTime = getMillTimeSecont();
	}
}

/*===========================================================================*/
/**
 * FPSの取得．
 */
int CaluculateFPS::getFPS()
{
	return m_FPS;
}

/*===========================================================================*/
/**
 * ミリ秒．
 */
unsigned int CaluculateFPS::getMillTimeSecont()
{
	struct timespec res;
	clock_gettime( CLOCK_MONOTONIC, &res );
	return 1000.0 * res.tv_sec + (double)res.tv_nsec/1e6;
}

/*========= End of File =====================================================*/
